









<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>scale4j - 
    description</title>
    <link rel="stylesheet" href="./css/maven-theme.css" type="text/css" />
    <link rel="stylesheet" href="./css/maven-base.css" type="text/css"/>
    <link rel="stylesheet" href="./css/prettify.css" type="text/css"/>
    <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
    <script type="text/javascript" src="./js/prettify.js"></script>
    <script type="text/javascript" src="./js/niftycube.js"></script>
    <script type="text/javascript">
        window.onload=function() {
            Nifty("div\#wrapper", "big");
            Nifty("div#breadcrumbs", "small");
            Nifty("div\#navcolumn", "small");
            Nifty("div.source", "medium");
            prettyPrint();
        }
    </script>
        <meta name="Date-Revision-yyyymmdd" content="20110326" />
      </head>
  <body>
    <div id="wrapper">
        <div id="banner">
                        <div id="bannerLeft">
    
                                            <img src="./images/scale4j.png" alt="$alt" />
    
            </div>
                            <div class="clear">
            <hr/>
          </div>
        </div>
        <div id="breadcrumbs">
              
  

  
    
            
  
    
                  <div class="xright">      
  

  
    
            
  
    
             <span id="publishDate">Last Published: 2011-03-26</span>
              &nbsp;| <span id="projectVersion">Version: 0.2</span>
            </div>
          <div class="clear">
            <hr/>
          </div>
        </div>
        <div id="leftColumn">
          <div id="navcolumn">
               
  

  
    
            
  
    
                       <h5>Overview</h5>
            <ul>
              
    <li class="none">
              <strong>Description</strong>
        </li>
              
    <li class="none">
                    <a href="tutorials.html">Tutorials</a>
          </li>
              
    <li class="none">
                    <a href="configuration.html">Configuration</a>
          </li>
              
    <li class="none">
                    <a href="documentation.html">Documentation</a>
          </li>
          </ul>
              <h5>Project Documentation</h5>
            <ul>
              
                
                    
                  
                  
                  
                  
              
        <li class="collapsed">
                    <a href="project-info.html">Project Information</a>
                </li>
              
                
                    
                  
                  
                  
                  
                  
                  
                  
                  
              
        <li class="collapsed">
                    <a href="project-reports.html">Project Reports</a>
                </li>
          </ul>
              <h5>External links</h5>
            <ul>
              
    <li class="none">
                    <a href="http://hazelcast.com" class="externalLink">hazelcast</a>
          </li>
              
    <li class="none">
                    <a href="http://www.springsource.org" class="externalLink">spring</a>
          </li>
              
    <li class="none">
                    <a href="http://www.hibernate.org" class="externalLink">hibernate</a>
          </li>
              
    <li class="none">
                    <a href="http://static.springsource.org/spring-batch" class="externalLink">spring batch</a>
          </li>
              
    <li class="none">
                    <a href="http://static.springsource.org/spring-security/site/index.html" class="externalLink">spring security</a>
          </li>
              
    <li class="none">
                    <a href="http://www.jboss.org/envers" class="externalLink">hibernate envers</a>
          </li>
              
    <li class="none">
                    <a href="http://www.hibernate.org/subprojects/search.html" class="externalLink">hibernate search</a>
          </li>
              
    <li class="none">
                    <a href="http://www.quartz-scheduler.org/" class="externalLink">quartz</a>
          </li>
              
    <li class="none">
                    <a href="http://www.atomikos.com/Publications/WebHome" class="externalLink">atomikos</a>
          </li>
              
    <li class="none">
                    <a href="http://perf4j.codehaus.org" class="externalLink">perf4j</a>
          </li>
              
    <li class="none">
                    <a href="http://vaadin.com/home" class="externalLink">vaadin</a>
          </li>
          </ul>
                                               <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
            <img class="poweredBy"
                 alt="Built by Maven"
                 src="./images/logos/maven-feather.png"
                 width="90"
                 height="30"
                 border="1" />
          </a>
                           
  

  
    
            
  
    
            </div>
        </div>
        <div id="bodyColumn">
          <div id="contentBox">
            
  
    <div class="section"><h2>Introduction<a name="Introduction"></a></h2>
      <p>
        scale4j is an open source project which built on top of well-known open source frameworks designed
        to help you develop high-performance data-distributed systems with minimal effort. <br />
        This project can be used as starter application for building fault tolerance applications. <br />
        There are a lot of great frameworks such as hibernate, quartz, spring batch, quartz that works perfectly inside
        non-clustered environment, but what about cluster? Yep, this can be a little bit tricky.<br />
        Hazelcast framework is used for clustering purpose.
        scale4j provides out-of-box domain oriented solution ready for use in high-performance systems.
        You would wonder how easily and how quickly you can build enterprise level scale applications!
      </p>
    </div>
    <div class="section"><h2>Features<a name="Features"></a></h2>
      <ul>
        <li>Maven 2 Integration</li>
        <li>Hazelcast Integration</li>
        <li>Spring Integration</li>
        <li>Hibernate Integration</li>
        <li>Hibernate Search Integration</li>
        <li>Hibernate Envers Integration</li>
        <li>Hibernate Metamodel Generator</li>
        <li>JPA 2</li>
        <li>Quartz Integration</li>
        <li>Spring Batch Integration</li>
        <li>Atomikos Integration</li>
        <li>JDK 5, Annotations</li>
        <li>Domain oriented model and CRUD backend</li>
        <li>Service oriented backend</li>
        <li>Web-monitoring console(hazelcast console, log4j console, perf4j console)</li>
        <li>Spring security Integration</li>
        <li>JMX Integration</li>
        <li>Perf4j Integration</li>
      </ul>
    </div>
    <div class="section"><h2>What's new in this release?<a name="Whats_new_in_this_release"></a></h2>
      <p>
        0.2 version is next major release of scale4j which introduced JPA 2 support. <br />
        Now you can choose native hibernate(as it was in release 0.1) and hibernate entity manager - you would not need modification of you existing application.
        Switching to JPA allows you to use new type safe criteria API and many other features. <br />
        Please refer to <a href="./documentation.html#jpa2">JPA2 support</a> page to find out more details.
      </p>
    </div>
    <div class="section"><h2>High-level overview of scale4j portfolio<a name="High-level_overview_of_scale4j_portfolio"></a></h2>
      <p>
        This project is separated into few modules and clients can choose according to their requirements.
      </p>
      <ul>
       <li>
        <b>scale4j-share</b> module contains useful utility classes and some basic interfaces(most likely clients will not use this module directly).
        Also some common spring configuration is included such as jmx-context.xml.</li>
        <li><b>scale4j-persistent</b> provides rich domain model and CRUD backend plus additional audit and search capabilities
        (clients will use well-known interfaces similar to HibernateTemplate and HibernateDaoSupport).
        There is nothing special required to enable audit and search stuff - just adding few annotations from hibernate envers and hibernate search sub-projects
        to your domain entities (@Indexed @Audited annotations etc) - no audit triggers, high level API for retrieving historical data.<br />
        In fact client interfaces that are available in <b>scale4j-persistent</b> module are simply extensions of spring orm classes/interfaces, so clients
        would not need to spent time on learning internal API/reading additional documentation, but will get extended functionality instead.<br />
        scale4j-persistent is minimal dependency, but please note that scale4j-persistent is not cluster-aware(not 'cluster-safe') itself.</li>
       <li>
        <b>scale4j-rttp('real time transaction processor')</b> is core module for clustering, data-distributing, scaling.<br />
        This module contains all you need to handle hugh amount of requests(transactions) in real-time and provides some extended functionality for job scheduling.<br />
        Hibernate second-level cache provider(RttpCacheRegionFactory) is great backend for in-memory domain object caching.<br />
        Spring batch is integrated with quartz job scheduler and you can find this integration is powerful and simple to use.<br />
        Also you can find useful Perf4j integration - no more System.currentMilisecs(), no more StopWatches - just @Profiled annotation.<br />
        There are a few spring post-processors which allows you to customize spring configuration, so as result you would not need to modify any of pre-configured configs directly.
       </li>
       <li>
         <b>scale4j-web</b> is simple extension of rttp module. Provides classical implementation of User/Role domain entities ready to work with spring security.
         But more important thing that you can find here is WebMonitor class which is jetty server itself enriched with per4j runtime statistic browser, log4j configurator,
         and very powerful hazelcast web console.
       </li>
       <li>
         <b>scale4j-agent</b> module defines concept of 'service' and allows you to launch client services in separate/dedicated JVMs(JVM will be created for each client service).
         Powerful <b>com.katesoft.scale4j.agent.JavaProcessBuilder</b> and <b>com.katesoft.scale4j.agent.SpringConfigurationRunner</b> allows
         you to launch spring-based services easily as well as control lifecycle of your service through JMX console. You would not need to restart whole application,
         but instead you can restart just separate service. Moreover each service will be part of the scale4j cluster itself.
       </li>
      </ul>
      <p>
        Please refer to <a href="./tutorials.html">tutorials</a> and <a href="./configuration.html">configuration</a> pages.
        You can find full documentation <a href="./documentation.html">here</a>.
      </p>
    </div>

    <div class="section"><h2>Upcoming release features<a name="Upcoming_release_features"></a></h2>
      <ul>
        <li>Quartz web application monitor to be integrated into WebMonitor</li>
        <li>Full XA integration(this is already integrated, but there are still open issues) - Atomikos used for this purpose</li>
        <li>'Spring integration' to be integrated into scale4j</li>
        <li>OSGI support</li>
      </ul>
    </div>
  

          </div>
        </div>
        <div class="clear">
          <hr/>
        </div>
        <div id="footer">
          <div class="xright">Copyright &#169;          
   
          2010-2011
    
                    <a href="http://mykate-soft.com">mykate-soft</a>.
            All Rights Reserved.    
  

  
    
            
  
    
  </div>
          <div class="clear">
            <hr/>
          </div>
        </div>
    </div>
  </body>
</html>
